home *** CD-ROM | disk | FTP | other *** search
/ Java Certification Exam Guide / McGrawwHill-JavaCertificationExamGuide.iso / pc / Web Links and Code / code / chap27 / answer / missing.java < prev    next >
Encoding:
Java Source  |  1997-04-20  |  1.6 KB  |  57 lines

  1.    public synchronized String[] getPassengerList() throws IOException {
  2.       String[] reservations = null;
  3.       PassengerRecord record;
  4.  
  5.       FileHeader header = readHeader();
  6.  
  7.       reservations = new String[header.numPassengers];
  8.  
  9.       for (int i = 0; i < header.numPassengers; i++) {
  10.          reservations[i] = readNextRecord().getName();
  11.       }
  12.       return reservations;
  13.    }
  14.       
  15.    public synchronized int getSeat(String passenger)
  16.       throws IOException, SeatNotFoundException
  17.    {
  18.       boolean found = false;
  19.       PassengerRecord record;
  20.  
  21.       int seat = 0; // satisfy the compiler
  22.       FileHeader header = readHeader();
  23.  
  24.       for (int i = 0; i < header.numPassengers && !found; i++) {
  25.          record = readNextRecord();
  26.          if (passenger.equals(record.getName())) {
  27.             found = true;
  28.             seat = record.getSeat();
  29.          }
  30.       }
  31.  
  32.       if (!found)
  33.          throw new SeatNotFoundException();
  34.  
  35.       return seat;
  36.    }
  37.  
  38.    public synchronized void reservePassenger(String passenger, int seat)
  39.       throws IOException, SeatTakenException
  40.    {
  41.       // Make sure the seat is still available
  42.       boolean taken = true; // prove it false
  43.       int[] open = getOpenSeats();
  44.       for (int i = 0; i < open.length && taken; i++) {
  45.          if (seat == open[i])
  46.             taken = false;
  47.       }
  48.  
  49.       if (taken)
  50.          throw new SeatTakenException();
  51.  
  52.       PassengerRecord record = new PassengerRecord();
  53.       record.setName(passenger);
  54.       record.setSeat(seat);
  55.       writeRecord(record);
  56.    }
  57.